package sketch.main;

import sketch.ounit.Values;
import sketch.specs.annotation.TestSketch;
import junit.framework.TestCase;

public class TestSketchExamples extends TestCase {
	@TestSketch
	public void testRandomValue() {
		treemap.TreeMap map1 = Values.randomCreate(treemap.TreeMap.class);
		treemap.TreeMap map2 = new treemap.TreeMap();
		map2.put(1);
		map2.put(3);
		Values.randomMutate(map2, treemap.TreeMap.class, 999, -8, -1, 0);
		System.out.println("Equals?: " + map1.equals(map2));
	}
	
	@TestSketch
	public void testSimpleTransform() {
		treemap.TreeMap map = new treemap.TreeMap();
		map.put(4);
		map.put(5);
		int i = Values.choose(1, 2, 3);
		{/*@ChooseOne*/
			map.put(i);
			map.remove(i);
		}
		System.out.println("The map is: " + map);
	}
	
	@TestSketch
	public void testTreeMap() {
		treemap.TreeMap map = new treemap.TreeMap();
		map.put(1);
		map.put(2);
		map.put(-2);
		map.put(999);
		map.remove(Values.symbolicInt());
	}
	
	@TestSketch
	public void testTreeMapMix() {
		treemap.TreeMap map = Values.randomCreate(treemap.TreeMap.class);
		map.remove(Values.symbolicInt());
	}
	
	@TestSketch
	public void testAllTransformation() {
		treemap.TreeMap map = new treemap.TreeMap();
		map.put(22);
		{/*@ChooseOne*/
			map.put(2);
			map.put(32);
		}
		Values.randomMutate(map, treemap.TreeMap.class, 109, 2, 1);
		map.remove(Values.symbolicInt());
	}
}
